<?php
class Mcthd  extends CI_Model {
    private $mahd;
    private $Status_mahd;
    private $matp;
    private $Status_matp;
    private $sl;
    private $Status_sl;
    private $giaban;
    private $Status_giaban;

    public function __construct() {
        parent::__construct();
        $this->load->database();
        $this->Oncreate();
   }

    private function Oncreate() {
        $this->mahd = "";
        $this->Status_mahd = 0;
        $this->matp = "";
        $this->Status_matp = 0;
        $this->sl = "";
        $this->Status_sl = 0;
        $this->dongia = "";
        $this->Status_dongia = 0;
    }

    public function set_mahd($data) {
        $this->mahd = $data;
        $this->Status_mahd = 1;
    }

    public function set_matp($data) {
        $this->matp = $data;
        $this->Status_matp = 1;
    }

    public function set_sl($data) {
        $this->sl = $data;
        $this->Status_sl = 1;
    }

    public function set_giaban($data) {
        $this->giaban = $data;
        $this->Status_giaban = 1;
    }

    public function get_mahd() {
        return $this->mahd;
    }

    public function get_matp() {
        return $this->matp;
    }

    public function get_sl() {
        return $this->sl;
    }

    public function get_giaban() {
        return $this->giaban;
    }

    /**
     *
     * Get  Oject
     *
     * @strWhere    Mệnh đề where
     * @return     no return. đưa các giá trị vào object gọi hàm()
     *
     */
    public function getObject($strWhere) {
        $this->Oncreate();
        $this->db->where($strWhere, NULL, FALSE);
        $query = $this->db->get("cthd");
        $ar = $query->row_array();
        if (!empty($ar)) {
            $this->mahd = $ar["MAHD"];
            $this->matp = $ar["MATP"];
            $this->sl = $ar["SL"];
            $this->giaban = $ar["DONGIA"];
        }
    }

    /**
     *
     * Insert Object into database
     *
     */
    public function Save() {
        $data = array("mahd" => $this->mahd,"matp" => $this->matp,"sl" => $this->sl,"giaban" => $this->giaban);
        $this->db->insert("cthd", $data);
    }

    /**
     *
     * Update Object có các field sử dụng hàm set_()
     *
     * @strWhere=null update tất cả các row trong database
     *
     */
    public function UpdateField($strWhere = NULL) {
        $arr = array();
        if ($this->Status_mahd == 1)
            $arr["mahd"] = $this->mahd;
        if ($this->Status_matp == 1)
            $arr["matp"] = $this->matp;
        if ($this->Status_sl == 1)
            $arr["sl"] = $this->sl;
        if ($this->Status_giaban == 1)
            $arr["giaban"] = $this->giaban;
        if (!empty($strWhere)) {
         $this->db->where($strWhere, NULL, FALSE);
        }
        $this->db->update("cthd", $arr);
    }

    /**
     *
     * Get list Oject
     *
     * @strFieldName         Các field cần lấy dữ liệu
     * @strWhere             Mệnh đề where
     * @strOrderby           Ex: 'title desc, name asc'
     * @Limit_Number_Row     Số dòng dữ liệu cần lấy ra
     * @Limit_Start_Index    Vị trí bắt đầu lấy dữ liệu
     *     foreach ($t as $value) {
           $ob=(object)($value);
           echo $ob->cthdname;
           echo $ob->pass;
       }
     * @return               result_object();
     *
     */
    public function getListObject($strFieldName = NULL, $strWhere = NULL, $strOrderby = NULL, $Limit_Number_Row = NULL, $Limit_Start_Index = NULL) {
        if (!is_null($strWhere)) {
            $this->db->where($strWhere, NULL, FALSE);
        }
        if (!is_null($strFieldName)) {
            $this->db->select($strFieldName);
        }
        if (!is_null($strOrderby)) {
            $this->db->order_by($strOrderby);
        }
        if (!is_null($Limit_Number_Row)) {
            if (!is_null($Limit_Start_Index))
                $this->db->limit($Limit_Number_Row, $Limit_Start_Index);
            else {
                $this->db->limit($Limit_Number_Row);
            }
        }
        $query = $this->db->get("cthd");
        return $query->result_object();
    }

    /**
     *
     * Get list Oject
     *
     * @strWhere    Mệnh đề where. Null sẽ xóa hết dữ liệu của table
     * @return      no
     *
     */
    public function Delete($strWhere = NULL) {
        if (!is_null($strWhere)) {
            $this->db->where($strWhere, NULL, FALSE);
            $this->db->delete("cthd");
        }        
       else $this->db->empty_table('cthd');
    }

    /**
     *
     * Lây max giá trị kiểu int của 1 trường dữ liệu
     *
     * @strFieldName    Trường dữ liệu cần lấy max(1 trường duy nhất)
     * @strWhere        Mệnh đề where
     * @return          1 giá trị kiểu string
     *
     */
    public function Max($strFieldName, $strWhere = NULL) {
        if (!is_null($strWhere))
            $this->db->where($strWhere, NULL, FALSE);
        $this->db->select_max($strFieldName);
        $query = $this->db->get('cthd');
        $ob = $query->row_array();
        return $ob[$strFieldName];
    }
      public function getArrayCTHD($mahd) {
       
        $this->db->select("mahd,cthd.matp,tentp,cthd.sl,cthd.giaban");
        $this->db->from("cthd");
        $this->db->join("tacpham", "tacpham.matp=cthd.matp");
        $this->db->where("mahd",$mahd);
        $query = $this->db->get();
        return $query->result_array();
    }
  

}

?>